package shoppingmall.reception.service;

import shoppingmall.reception.dto.ProductOrderVO;
import shoppingmall.reception.pojo.ProductOrder;

import java.util.List;

/**
 * 前台商品订单相关服务层接口
 */
public interface ProductOrderService {
    /**
     * 添加一条商品订单数据
     */
    public List<String> saveProductOrder (ProductOrder productOrder);

    /**
     * 批量创建商品订单数据(用户购物车勾选多条商品进行结算)
     */
    public List<String> saveProductOrderBatch (List<ProductOrder> productOrders);

    /**
     * 查询平台会员用户的所有订单
     */
    public List<ProductOrderVO> getUserAllProductOrderList (int userId);

    /**
     * 查询某条订单数据(根据订单id = ? 或者订单号 order_id = ?)
     */
    public List<ProductOrderVO> getProductOrderByOrderId (String orderId);

    /**
     * 查询用户的多条订单数据(orderIds : 订单字符串集合，以','分割)
     */
    public List<ProductOrderVO> getProductOrderByOrderIds (String orderIds);

    /**
     * 查询平台会员的相关状态订单 (userId = ?  order_state = ?)
     */
    public List<ProductOrderVO> getProductOrderListByUserIdAndOrderState (int userId, String orderState);

    /**
     * 修改订单的相关信息(主要是 订单联系人、号码、地址、订单备注)
     */
    public boolean updateProductOrder (ProductOrder productOrder);

    /**
     * 删除平台会员订单(支持单条删除 和 多条批量删除) 根据订单主键id?  订单号?
     */
    public boolean deleteProductOrderBatch (List<String> orderIds);
}
